From 62a0d658541790febe678c6cad74f8dad6d12da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Mon, 4 Nov 2019 19:18:45 +0100 Subject: dodana http endpoint in navodila --- endpoint.md | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ endpoint.php | 9 ++++++ 2 files changed, 99 insertions(+) create mode 100644 endpoint.md create mode 100644 endpoint.php diff --git a/endpoint.md b/endpoint.md new file mode 100644 index 0000000..fe02cbb --- /dev/null +++ b/endpoint.md @@ -0,0 +1,90 @@ +# *** dokumentacija gimsisextClient rest api endpointa -- Anton L. Šijanec -- sijanec/gimsisextClientEndpoint + +endpoint je testno javno dostopen na http://gimb.tk/test.php + to je testni endpoint in ni namenjen produkcijskim okoljem, nanj se ne zanašajte. + če res zanesljiv api endpoint, ga morate gostovati sami. + +uporaba: + splošno: + parametre pošiljate v skladu s URL formatom (RFC2616) + citat iz RFC6920: + + Query Parameter separator '?': The query parameter separator acts as + a separator between the digest value and the query parameters (if + specified). For compatibility with Internationalized Resource + Identifiers (IRIs), non-ASCII characters in the query part MUST be + encoded as UTF-8, and the resulting octets MUST be percent-encoded + (see [RFC3986], Section 2.1). + + Query Parameters: A "tag=value" list of optional query parameters as + are used with HTTP URLs [RFC2616] with a separator character '&' + between each. For example, "foo=bar&baz=bat". + + Query paramater seperator uporabljajte le pri GET zahtevah: + https://gimb.tk/test.php?ime=vrednost&ime2=vrednost2 + in ne pri POST: + nepravilno: + POST /test.php HTTP/1.1 + Host: gimb.tk + Accept: */* + Content-Length: xxx + + ?ime=vrednost&ime2=vrednost2 + pravilno: + POST /test.php HTTP/1.1 + Host: gimb.tk + Accept: */* + Content-Length: xxx-1 + + ime=vrednost&ime2=vrednost2 + arrayi: + arraye pošiljate z ime[] formatom. $a=array(1,2,3) bi bil a[]=1&a[]=2&a[]=3, ali pa a[0]=1&a[1]=2&a[2]=3. + seveda lahko uporabljate tudi ključe arrayev. $b=array("a"=>"b") bi bil b[a]=b + napake: + napake sintakse se ne pošiljajo, ob napaki dobite le prazno stran: mogoče dobite HTTP error 500, kar pa je odvisno od php-fpm nastavitev + ves stdout output klase gimsisextClient pa dobite. + -1 no login info + -2 not logged in + -3 bad username or password + -4 not written yet + avtentikacija: + avtenticirate se za vsako zahtevo, saj se piškotni *NE* uporabljajo (juhu!-meni se to zdi dobra ideja) + uporabniško ime: ime:u vresnost:uporabniško ime + geslo: ime:p vrednost:geslo + primer GET: + GET /test.php?u=username&p=password&ostali=parametri HTTP/1.1 + metode objekta: + klic na določeno metodo. + zahtevi dodate spremenljivko m=metoda. + primer GET za metodo fetchurnik: + GET /test.php?u=username&p=password&m=fetchurnik&ostali=parametri HTTP/1.1 + podajanje parametrov/argumentov: + ime parametra funkcija določi po zaporedju, v zahtevi jih pošljete kot individualne vrednosti a, b, c, d, ... . + primer GET za metodo posljisporocilo, ko uporabnikust 5313 (Rok Štular) pošljemo sporočilo z zadevo EHLO in telesom ehlo from api + GET /test.php?u=username&p=password&m=posljisporocilo&a=5313&b=EHLO&c=%3Cb%3Eehlo%20from%20api%3C%2Fb%3E HTTP/1.1 + pomemben namig: kot je razvidno iz primera, morate parametre ustrezno url šifirati. v PHP jeziku lahko uporabite urlencode($telo) + metode (velja za gimsisextClient verzije 0.6.0): + spodaj je seznam metod z njihovimi parametri. + metode (če je pri parametru = in neka vrednost, bo na to vrednost nastavljen argument v primeru neizpolnitve): + ime metode;parametri;opombe + fetchurnik;datum=null,datum je niz datuma ponedeljka želenega tedna v formatu 21.10.2019. Ob nenavedbi datuma bo izbran trenutni teden. + fetchocenjevanja;;samoumevno + fetchprofesorji;;samoumevno + fetchprofil;;samoumevno, glej setprofil + setprofil;ime,priimek,spol,eposta,obvestila,telefon);spol: "M"/"Ž" obvestila: "true"/"false" telefon: +tccpndddddd (npr. +38664176345)-od verzije zgimsisa 1.0.7226.34224 se da spreminjati le telefonsko. glej fetchabout + fetchabout;;podatke o gimssiext programu-pove tudi, katera vezija zgimsisa se poganja. + fetchneprebrana;;vrne število neprebranih sporočil. ta števec je čuden, jaz se ne bi zanašal nanj, raje bi bral naprej in uporabil spodnjo metodo + fetchsporocilaseznam;katera;katera: 0=prejeta 1=poslana 2=izbrisana + fetchsporocilo;id;id sporocila je v gimsisext formatu IdMsg /al' kakorkol' je že/, int|int|int in nimam faking pojma kako dela, prfukjen, kr neki gre gor pa dol + posljisporocilo;userid,zadeva,telo;userid je zajeban' dobit', kmalu bomo leakal useridje, bodite pozorni: @bezigeeks on IG. telo je lahko HTML (ja, tudi XSS je "podprt, če bi temu lahko tako rekli!"). Kdaj pa kdaj se bo gimsisu zahotelo narest HTTP 500 error in !poslati sporočila, če vsebuje HTML, saj ga ima za XSS. idk... ker metoda vedno vrne null, za preverjanje, če je sporočilo poslano, priporočam zgornjo metodo + setgeslo;geslo,spremenigeslovobjektu;geslo je seveda novo geslo, spremenigeslovobjektu pa za uporabnike apija ni pomemben. NI POMEMBEN! NI PAČ, kaj te briga kaj nardi?!?!?!?!!1111! + izbrisisporocilo;id;id je IdMsg|IdZapis. sporocilo bo premaknjeno med izbrisana sporocila/fetchsporocilaseznam(2) + getversion;;vrne array(major, minor, patch) verzijo klase + fetchizostanki;datzacetka,datkonca;datzacetka in dankonca določita tajmspen v katerem naj vrne izostanke. formata d.m.Y (npr. 13.10.1971) ali pa array(24, 21, 1969) + dnevnik sprememb / changelog, začenjši z 0.5.13: + 0.6.0 - ponedeljek, 4. novembra 2019 ob 19:14 -- dodal fetchocene, + 0.5.13 - ponedeljek, 4. novembra 2019 -- api sprememba, popravljen tiskarski škrat, fetchurnik namesto "ucilinca", ja, res, "ucilinca" v JSONu napiše "prostor", popravite gimsisextClientEndpointClient kliente. + +that's all folks +<< EOF + diff --git a/endpoint.php b/endpoint.php new file mode 100644 index 0000000..a58eeb5 --- /dev/null +++ b/endpoint.php @@ -0,0 +1,9 @@ +setusername($_REQUEST['u']); + $g->setpassword($_REQUEST['p']); + echo json_encode($g->{$_REQUEST['m']}($_REQUEST['a'], $_REQUEST['b'], $_REQUEST['c'], $_REQUEST['d'], $_REQUEST['e'])); +?> -- cgit v1.2.3